package org.dreamwork.cai.jmx;

import org.dreamwork.cai.jmx.beaninfo.Frame;

import javax.management.MXBean;
import javax.management.openmbean.CompositeData;

@MXBean
public interface CrossApplicationInvocationMXBean {
    /**
     * 获取当前路由表
     * @return 当前的路由表
     */
    Frame[] getRouteTable ();

    /**
     * 调用远程服务
     * @param namespace 远程服务的命名空间
     * @param typeName  远程服务的类型名称
     * @param uuid      远程服务的方法 uuid
     * @param args      远程方法的参数
     * @return 远程方法的执行结果
     */
    String remoteCall (String namespace, String typeName, String uuid, String[] args);

    /**
     * 获取当前版本
     * @return 当前版本号
     */
    default String getVersion () { return "1.0.0"; }
}